// PFMImage.h
//

#ifndef _PFMIMAGE_H
#define _PFMIMAGE_H

#include <string>

using namespace std;

class PFMImage
{

private:
	float * imageData;
	string filename;
	unsigned int width;
	unsigned int height;
	unsigned int num_components;
	unsigned int exposure;

public:
	PFMImage(unsigned int width, unsigned int height,
	        unsigned int num_components);
	explicit PFMImage(string filename);
	~ PFMImage();

	void write(string filename);
	void writePPM(string filename);

	float * getData();

	unsigned int getWidth();
	unsigned int getHeight();
	unsigned int getNumComponents();
	unsigned int getExposure();

	void setExposure(unsigned int exp);

};

#endif /* _PFMIMAGE_H */
